Data processing systems typically require a large amount of data storage. These systems often comprise multiple host processors concurrently storing data to multiple storage volumes through multiple drive units. The data storage within these systems often includes removable media, such as magnetic tape or optical disk, since it is useful for data that must be stored for long periods of time, data that is infrequently accessed, or data that is backed-up or migrated from more accessible storage media, such as electronic memory or DASD. Removable media also has an economic advantage in that it provides a lower cost per unit of storage.
Virtual data storage systems, more commonly implemented as virtual tape storage (VTS) systems, have recently been developed to increase the efficiency and economics of tape storage systems. Tape storage systems which attach to multiple host processing systems typically require many tape drives to accommodate concurrent demands made by separate host processors for accessing separate tape storage volumes. Accordingly, the tape storage system may utilize the tape drives in bursts of high activity separated by intervals of little activity. VTS systems overcome this problem by providing interfaces to the host processors for addressing many more tape drives than actually exist within the storage subsystem. The attached host processors transfer data files to the VTS system as tape volumes, or logical volumes. The VTS system first stores the logical volumes as files in a cache storage, such as a direct access storage device (DASD) or an electronic memory, and subsequently writes the data files from the cache storage to the tape storage subsystem. When the logical volume has been stored in the cache storage, it appears to the host processor that the logical volume has been stored as a tape volume in the VTS system. The VTS system manages the migration of the data file to a tape storage volume, and selects which physical tape drive is used to write the data to tape.
The VTS system uses the cache storage to buffer data transfers between the tape storage and the attached host processors. When the host processors write data to the VTS system, the data is stored in the cache storage. Likewise, host mount requests involve the cache storage. If the requested data file is contained within the cache storage, a "cache hit" allows the VTS system to immediately make the data available to the host processor. If the requested file has been migrated to a tape volume, the VTS system must recall the file from the tape volume, which copies the file into the cache storage, and then make the data available to the requesting host processor from the cache storage. The VTS system also uses the cache storage to provide quick responses to the attached host processors. Host write operations complete once the logical volume has been stored as a data file in the cache storage. As stated earlier, host read operations complete quickly when a cache hit allows the VTS system to transfer the requested logical volume immediately from the cache storage. Thus, the VTS system must manage the cache storage and the tape storage volumes such that the more frequently requested data files, or logical volumes, reside in the cache storage.
The VTS must also manage the capacity of the cache storage. Write operations from the attached host processors fill the cache storage with data files. Additionally, host read operations can also fill the cache storage with data files. If the read operation results in a cache miss, because the data file was previously migrated to a tape storage volume, the requested data file must be recalled from the tape storage volume to the cache storage and then transferred to the host processor. Higher performance, efficient VTS systems also premigrate data files from the cache storage to the tape storage volumes. That is, the VTS system copies the data file to a selected tape storage volume, but does not remove the file from the cache storage. In this scheme, the VTS system has transferred the data file as a logical volume to the tape storage volume, but has kept a copy in the cache storage, providing faster host access to the data file. Thus, premigrating data files provides no relief to the storage capacity constraints placed on the cache storage. The VTS system must migrate infrequently accessed data files from the cache storage to provide available space for the incoming data files. Typically, the cache storage fills at a faster rate than it is emptied. Thus, the cache storage would quickly overrun, or overflow its capacity, without some means to balance the incoming data rate with the outgoing data rate.
Therefore, a method and system is needed within a virtual data storage system, more commonly implemented as a virtual tape storage (VTS) system, to balance the incoming data rate with the outgoing data rate once the cache storage approaches a threshold of available, or free, space. It is also preferred that the method and system automatically adapt as circumstances relating to the cache storage change.